// @Author : zaniu(zzaniu@126.com)
// @Time   : 2021/9/1 15:28
// @Desc   :
//
//                   _ooOoo_
//                  o8888888o
//                  88" . "88
//                  (| -_- |)
//                  O\  =  /O
//               ____/`---'\____
//             .'  \\|     |//  `.
//            /  \\|||  :  |||//  \
//           /  _||||| -:- |||||-  \
//           |   | \\\  -  /// |   |
//           | \_|  ''\---/''  |   |
//           \  .-\__  `-`  ___/-. /
//         ___`. .'  /--.--\  `. . __
//      ."" '<  `.___\_<|>_/___.'  >'"".
//     | | :  `- \`.;`\ _ /`;.`/ - ` : | |
//     \  \ `-.   \_ __\ /__ _/   .-` /  /
// =====`-.____`-.___\_____/___.-`____.-'=====
//                   `=---='
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//           佛祖保佑       永无BUG
//
package utils

import (
	"fmt"
	"os"
	"os/signal"
	"time"
)

func ListenInterrupt(timeout time.Duration) {
	ticker := time.NewTicker(timeout)
	s := make(chan os.Signal)
	signal.Notify(s, os.Interrupt)
	select {
	case <-s:
		fmt.Println("中断退出...")
	case <-ticker.C:
		fmt.Println("超时退出...")
	}
}

type MsgInfo struct {
	GlobalNo    string `json:"globalNo"`
	UserName    string `json:"userName"`
	GoodsName   string `json:"goodsName"`
	GoodsNumber uint64 `json:"goodsNumber"`
}

// 这里是为了方便才写在一起的，实际上应该是每个微服务自己独一份
type GlobalConfig struct {
	RocketMQHost string `json:"rocketMQHost"`
	RocketMQPort int    `json:"rocketMQPort"`
	Topic        string `json:"topic"`
	SqlHost      string `json:"sqlHost"`
	SqlPort      int    `json:"sqlPort"`
	SqlDbName    string `json:"sqlDbName"`
	SqlUserName  string `json:"sqlUserName"`
	SqlUserPwd   string `json:"sqlUserPwd"`
}

const (
	NamespaceId = "eb15ed13-004f-4655-be73-a1d1ff654f98" // 这个是需要提前去Nacos配置的
)

var GlobalServerConfig = &GlobalConfig{}
